

c= 127920307084611440387483622092514024727640341163378180961814989720890005402140221437055114769322535871722710161328242949530290260103266825265156965377673759658578325758868729075437311263613086114754165875298689440061892414982970093006369638269890377530529947585943478257832251842545290081817093690228466165887
n= 135817608269251795003011570683678069604785699531916100090612604501141284845088170311710614232920970564187488741545510450496461714239247010686609114805527034299543957362793848355141980117200314770864587999092614921851154260157718763106944530842830535203652330609589617546857308577313340302320959944780922793753
e=65537
x=2293
import libnum
import gmpy2

p1,s=gmpy2.iroot(n,2)
q=gmpy2.next_prime(p1)
p=n//q
print(n==p*q)
d=libnum.invmod(e,(p-1)*(q-1))
m1=pow(c,d,n)

print(m1)

# m1%p=m*(p-x)!%p
# #(p-2)！%p=1%p
# #两边同时乘(p-x+1)
# m1(p-x+1)%p=m*(p-x)!(p-x+1)%p
# m1(p-x+1)....(p-2)%p=m*(p-x)!(p-x+1)...(p-2)%p
#
# m1(p-x+1)....(p-2)%p=m*(p-2)!%p
# m1(p-x+1)....(p-2)%p=m*%p

for i in range(p-x+1,p-1):
    #m1=(m1*i)%p
    m1=pow(m1*i,1,p)
print(libnum.n2s(int(m1)))
